﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

using HackerRank.Puzzles;


namespace HackerRank
{

    public enum PuzzlesToRun
    {
        UtopianTree,
        MaximizeXOR
    }

    class PuzzleBootstrap
    {
        static void Main(string[] args)
        {
            #region UtopianTree

            #region User Input
            
            /*
            bool testCasesEntered = false;
            int testCases = Convert.ToInt32(Console.ReadLine());
            List<int> userInput = new List<int>();

            userInput.Add(testCases);

            while (!testCasesEntered)
            {
                userInput.Add(Convert.ToInt32(Console.ReadLine()));

                if (userInput.Count() == testCases + 1)
                {
                    testCasesEntered = true;
                }
                Thread.Sleep(100); //yield cpu here not to swamp 1 whole cpu
            }
            */

            #endregion
            
            int[] input = new int[] { 3,0,1,4 };//userInput.ToArray();
            UtopianTreeSolver utopianTreeSolver = new UtopianTreeSolver();
            int[] output = utopianTreeSolver.Solve(ref input);

            output.ToList().ForEach(p => { Console.WriteLine(p); }); 

            #endregion


            #region MximizeXoR

            //https://www.hackerrank.com/challenges/maximizing-xor

            #region user Input

            #endregion

            //userInput.ToArray();

            int maximizeXoRSolverOutput = MaximizeXoRSolver.maxXor(10, 15);

            Console.WriteLine(maximizeXoRSolverOutput);


            #endregion
        }
    }
}
